Package-level declarations

Types

Link copied to clipboard

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard
abstract class ByteSetting(default: Byte, desc: Pair<Locale, String>) : SettingBase<SettingValue.ValByte>

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard

Result 的包装,泛型 T 在类级别,提供成员函数来弥补 Result 错误处理方面的缺陷,并转发 Result 的标准 API。 为了避免 <E, T> 导致编译器无法推断泛型类型,包装 Result,成员函数就不需要 T 了。

Link copied to clipboard
abstract class CharSetting(default: Char, desc: Pair<Locale, String>) : SettingBase<SettingValue.ValChar>

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard
abstract class FloatSetting(default: Float, desc: Pair<Locale, String>) : SettingBase<SettingValue.ValFloat>

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard
abstract class I18nBase(pairs: Pair<Locale, String>) : I18nDef

能够让 I18nDef 实现省几行代码的基类,示例:

Link copied to clipboard
abstract class IntSetting(default: Int, desc: Pair<Locale, String>) : SettingBase<SettingValue.ValInt>

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard
abstract class LongSetting(default: Long, desc: Pair<Locale, String>) : SettingBase<SettingValue.ValLong>

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard
class Mutable<T>

包装一个不可变数据,基于 ReentrantMutex 提供并发安全的更新方式。同时支持在数据被修改时执行 lambda。

Link copied to clipboard

基于 Mutex 的可重入锁,相同协程以及子协程都允许重入。

Link copied to clipboard
abstract class SettingBase<out V : SettingValue<*>>(desc: Pair<Locale, String>) : SettingDef<V>

通常使用此文件中的其他基类,如 StringSetting

Link copied to clipboard
abstract class ShortSetting(default: Short, desc: Pair<Locale, String>) : SettingBase<SettingValue.ValShort>

能够让 SettingDef 实现省几行代码的基类,示例:

Link copied to clipboard

能够让 SettingDef 实现省几行代码的基类,示例:

Properties

Link copied to clipboard
val en: Locale

语言代码 en

Link copied to clipboard
val zh: Locale

语言代码 zh_CN

Functions

Link copied to clipboard
inline fun <T> TraceRecorder.catching(block: () -> T): CatchingResult<T>
inline fun <T, R> T.catching(recorder: TraceRecorder, block: T.() -> R): CatchingResult<R>

runCatching 的封装,onFailure 自动记录异常到 TraceRecorder,需要调用方实现 io.github.autotweaker.api.Traceable

Link copied to clipboard
fun en(text: String): Pair<Locale, String>

使用 text 构造一个语言为 enPair<Locale, String>

Link copied to clipboard
fun <R, T : R> CatchingResult<T>.getOrDefault(defaultValue: R): R
Link copied to clipboard
inline fun <R, T : R> CatchingResult<T>.getOrElse(onFailure: (Throwable) -> R): R
Link copied to clipboard
inline fun <R, T : R> CatchingResult<T>.recover(transform: (Throwable) -> R): CatchingResult<R>
Link copied to clipboard
inline fun <E : Throwable, R, T : R> CatchingResult<T>.recoverException(transform: (E) -> R): CatchingResult<Any?>

如果异常为 E,对 T 进行 transform,返回新的 CatchingResult

Link copied to clipboard
fun zh(text: String): Pair<Locale, String>

使用 text 构造一个语言为 zhPair<Locale, String>